﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Intentor.Utilities;
using Duet.Model.Core.Entities;
using Duet.Model.Facade;
using Duet.Web.Core;
using System.Configuration;
using System.Text;
using System.Net;
using System.Net.Mail;

namespace Duet.Web.Forms
{
    public partial class Contato : Duet.Web.Core.BaseContentPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            this.SendMail();
            this.Clear();
        }

        /// <summary>
        /// Envia email para Apregoa
        /// </summary>
        private void SendMail()
        {
            if (Page.IsValid)
            {
                try
                {
                    string fromTo = ConfigurationManager.AppSettings["Email"];
                    string subject = String.Format("{0} | {1} | {2}", this.txtNome.Text.ToUpper().Trim(), this.ddlTipodeEvento.SelectedValue.ToUpper().Trim(), this.txtDtEvento.Text.ToUpper().Trim());
                    string smtp = ConfigurationManager.AppSettings["Smtp"];
                    int porta = ConfigurationManager.AppSettings["Porta"].Parse<int>();

                    StringBuilder body = new StringBuilder();
                    body.AppendFormat(@"<br><strong>Nome:</strong> {0}
                                    <br><strong>Telefone:</strong> {1}
                                    <br><strong>Email:</strong> {2}
                                    <br><strong>Tipo de Evento:</strong> {3}
                                    <br><strong>Data do Evento:</strong> {4}
                                    <br><strong>Local do Evento:</strong> {5}
                                    <br><strong>Número de Convidados:</strong> {6}
                                    <br><strong>Mensagem:</strong> {7}",
                                    this.txtNome.Text.ToUpper().Trim(), this.txtTelefone.Text.ToUpper().Trim(), this.txtEmail.Text.ToUpper().Trim(), this.ddlTipodeEvento.SelectedValue.ToUpper(), this.txtDtEvento.Text.ToUpper().Trim(), this.txtLocalEvento.Text.ToUpper().Trim(), this.txtNumConvidados.Text.ToUpper().Trim(), this.txtMensagem.Text.ToUpper().Trim());


                    MailMessage mm = new MailMessage();

                    mm.Subject = subject;
                    mm.Body = body.ToString();
                    mm.IsBodyHtml = true;
                    mm.From = new MailAddress(fromTo);
                    mm.To.Add(fromTo);
                    
                    // Define the subject and body
                    mm.To.Add(fromTo);

                    // Configure the mail server
                    SmtpClient sc = new SmtpClient(smtp);
                    sc.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["Email"], ConfigurationManager.AppSettings["Senha"]);
                    sc.Port = porta;
                    sc.EnableSsl = false; //Usar false caso o servidor nao precise de autenticacao ssl

                    // Send the message and notify the user of success
                    sc.Send(mm);

                    ContentManager.ShowMessageBox("Email Enviado com Sucesso. Obrigado");
                }
                catch
                {
                    this.Clear();
                    ContentManager.ShowMessageBox("Desculpe, ocorreu um problema ao enviar seu email. Envie um emai para: contato@dueteventos.com.br. Obrigado");
                }
            }
        }

        /// <summary>
        /// Método para limpar os dados
        /// </summary>
        private void Clear()
        {
            txtNome.Text = 
                txtTelefone.Text = 
                    txtEmail.Text = 
                        txtDtEvento.Text = 
                            txtLocalEvento.Text =
                                txtNumConvidados.Text =
                                    txtMensagem.Text = string.Empty;
            
            ddlTipodeEvento.SelectedIndex = -1;
        }
//            try
//            {
//                string from = String.Format("{0} <{1}>", this.txtNome.Text.ToLower().Trim(), this.txtEmail.Text.ToLower().Trim());
//                string to = ConfigurationManager.AppSettings["Email"];
//                string subject = String.Format("{0} | {1} | {2}", this.txtNome.Text.ToUpper().Trim(), this.ddlTipodeEvento.SelectedValue.ToUpper().Trim(), this.txtDtEvento.Text.ToUpper().Trim());
//                string host = ConfigurationManager.AppSettings["Smtp"];

//                StringBuilder body = new StringBuilder();

//                body.AppendFormat(@"<br><strong>Nome:</strong> {0}
//                                <br><strong>Telefone:</strong> {1}
//                                <br><strong>Email:</strong> {2}
//                                <br><strong>Tipo de Evento:</strong> {3}
//                                <br><strong>Data do Evento:</strong> {4}
//                                <br><strong>Local do Evento:</strong> {5}
//                                <br><strong>Número de Convidados:</strong> {6}
//                                <br><strong>Mensagem:</strong> {7}",
//                                this.txtNome.Text.ToUpper().Trim(), this.txtTelefone.Text.ToUpper().Trim(), this.txtEmail.Text.ToUpper().Trim(), this.ddlTipodeEvento.SelectedValue.ToUpper(), this.txtDtEvento.Text.ToUpper().Trim(), this.txtLocalEvento.Text.ToUpper().Trim(), this.txtNumConvidados.Text.ToUpper().Trim(), this.txtMensagem.Text.ToUpper().Trim());

//                SmtpHelper.SendMail(from, to, subject, body.ToString(), host);
//            }
//            catch (Exception)
//            {
//                ClientHelper.MessageBox("Desculpe, ocorreu um problema ao enviar seu email. Envie um emai para: contato@dueteventos.com.br. Obrigado");
//            }
        //}
    }
}